Systems and methods for providing interaction with elements in a virtual architectural visualization

ABSTRACT

A method of providing interaction with elements in a virtual architectural visualization is disclosed which includes the steps of providing an application server configured with at least a rendering engine for an architectural visualization, the application server further configured to communicate with at least one client device via a network; generating a predetermined architectural visualization in response to a request from said at least one client device; transmitting a video signal depicting the predetermined architectural visualization to the client device over the network; and, receiving input data from the client device and updating the architectural visualization in response to the input data.

CLAIM OF PRIORITY

The present application is a Continuation application of previously filed, now pending U.S. patent application Ser. No. 15/407,151 which was filed on Jan. 16, 2017, which is a Continuation-In-Part application of U.S. patent application Ser. No. 15/332,978 which was filed on Oct. 24, 2016, which claimed the benefit of prior filed Provisional application, having Ser. No. 62/245,102 filed on Oct. 22, 2015, the contents of each are explicitly and fully incorporated herein by reference in their entireties, including all appendices thereto.

APPENDIX OF COMPUTER PROGRAM LISTING ASCII TEXT FILES

An appendix of Computer Program Listing ASCII Text Files is submitted herewith in electronic form via EFS-Web, comprising the following text files, which are explicitly and fully incorporated herein by reference in their entireties:

Name: BP_EditableObject.txt

Date Created: Sep. 3, 2015

File Size: 5,357 KB

Name: BP_ObjectChoices.txt

Date Created: Sep. 3, 2015

File Size: 13 KB

Name:CharacterController-DisableObjectFunction.txt

Date Created: Sep. 3, 2015

File Size: 20 KB

Name: CharacterController-EventGraph.txt

Date Created: Sep. 3, 2015

File Size: 3,092 KB

Name:CharacterController-TraceNewObjectFunction.txt

Date Created: Sep. 3, 2015

File Size: 83 KB

Name:EditableObject-ConstructionScript.txt

Date Created: Sep. 3, 2015

File Size: 159 KB

Name:EditableObject-EventGraph.txt

Date Created: Sep. 3, 2015

File Size: 121 KB

Name: HoytAnalytics (2).txt

Date Created: Sep. 3, 2015

File Size: 1 KB

Name: HoytAnalytics.Build.txt

Date Created: May 12, 2016

File Size: 2 KB

Name: HoytAnalytics.txt

Date Created: May 12, 2016

File Size: 2 KB

Name:HoytAnalyticsEdMode (2).txt

Date Created: May 12, 2016

File Size: 1 KB

Name: HoytAnalyticsEdMode.txt

Date Created: May 12, 2016

File Size: 2 KB

Name: Interpreter.cpp.txt

Date Created: May 12, 2016

File Size: 18 KB

Name: Interpreter.h.txt

Date Created: May 12, 2016

File Size: 4 KB

Name: LevelSelectionWidget.cpp.txt

Date Created: May 12, 2016

File Size: 2 KB

Name: LevelSelectionWidget.h.txt

Date Created: May 12, 2016

File Size: 2 KB

Name: LocatorMap-ContructionScript.txt

Date Created: Sep. 3, 2015

File Size: 44 KB

Name: LocatorMap-EventGraph.txt

Date Created: Sep. 3, 2015

File Size: 60 KB

Name: Recorder.cpp.txt

Date Created: May 12, 2016

File Size: 6 KB

Name: Recorder.h.txt

Date Created: May 12, 2016

File Size: 3 KB

Name: ThumbnailRenderer-ContructionScript.txt

Date Created: Sep. 3, 2015

File Size: 9 KB

Name: ThumbnailRenderer-EventGraph.txt

Date Created: Sep. 3, 2015

File Size: 20 KB

Name: ThumbnailRenderer-FindMatchFunction.txt

Date Created: Sep. 3, 2015

File Size: 33 KB

Name: ThumbnailRenderer-RenderThumbnailFunction.txt

Date Created: Sep. 3, 2015

File Size: 247 KB

Name: HoytAnalyticsEdModeToolkit (2).txt

Date Created: May 12, 2016

File Size: 1 KB

Name:HoytAnalyticsEdModeToolkit.txt

Date Created: May 12, 2016

File Size: 2 KB

Name:HoytAnalyticsEdModeWidget.cpp.txt

Date Created: May 12, 2016

File Size: 10 KB

Name: HoytAnalyticsEdModeWidget.h.txt

Date Created: May 12, 2016

File Size: 2 KB

Name: HoytAnalyticsPrivatePCH.txt

Date Created: May 12, 2016

File Size: 1 KB

Name:HoytAnalyticsRecorder.Build.cs.txt

Date Created: May 12, 2016

File Size: 2 KB

Name: HoytAnalyticsRecorder.cpp.txt

Date Created: May 12, 2016

File Size: 1 KB

Name: HoytAnalyticsRecorder.h.txt

Date Created: May 12, 2016

File Size: 1 KB

Name: HoytAnalyticsRecorderBPLibrary.cpp.txt

Date Created: May 12, 2016

File Size: 1 KB

Name: HoytAnalyticsRecorderBPLibrary.h.txt

Date Created: May 12, 2016

File Size: 3 KB

Name: HoytAnalyticsRecorderPrivatePCH.h.txt

Date Created: May 12, 2016

File Size: 1 KB

Name: HoytSelectionWidget.cpp.txt

Date Created: May 12, 2016

File Size: 1 KB

Name: HoytSelectionWidget.h.txt

Date Created: May 12, 2016

File Size: 2 KB

Name: ToolkitFunctions.txt

Date Created: Sep. 3, 2015

File Size: 104 KB

Name: ToolkitMacros.txt

Date Created: Sep. 3, 2015

File Size: 60 KB

Name: TutorialSystem-EventGraph.txt

Date Created: Sep. 3, 2015

File Size: 907 KB

Name: TutorialSystem-UpdatePanelFunction.txt

Date Created: Sep. 3, 2015

File Size: 13 KB

Name: UI_Edit.txt

Date Created: Sep. 3, 2015

File Size: 5 KB

Name: UI_Main.txt

Date Created: Sep. 3, 2015

File Size: 42 KB

Name: VR_Button.txt

Date Created: Sep. 3, 2015

File Size: 1219 KB

Name: VR_Character.txt

Date Created: Sep. 3, 2015

File Size: 6421 KB

Name: VR_Controller.txt

Date Created: Sep. 3, 2015

File Size: 8 KB

Name: VR_GameMode.txt

Date Created: Sep. 3, 2015

File Size: 9 KB

Name: VR_Interface.txt

Date Created: Sep. 3, 2015

File Size: 54 KB

Name: VR_Panel.txt

Date Created: Sep. 3, 2015

File Size: 10,385 KB

Name: VR_SwitchingPanel.txt

Date Created: Sep. 3, 2015

File Size: 3296 KB

Name: snippets.txt

Date Created: Dec. 10, 2016

File Size: 5 KB

BACKGROUND OF THE INVENTION Field of the Invention

The present invention is directed to methods, systems, and associated features of providing interaction with elements and objects in a virtual architectural visualization.

Description of the Related Art

Architectural models have long been used to depict, consider, explore, and display architectural concepts prior to construction thereof. In more recent years, three-dimensional computer aided design has been implemented to provide architectural models in a virtual space to provide more rapid and efficient development of such models. However, typically, such computer aided design program can be very complex to operate, suitable for only the most computer-literate. Accordingly, there is a need in the art to provide a more intuitive and user-friendly interface for interacting with elements within an architectural computer model. Additionally, as will be disclosed, the solution provided by the present invention lends itself to tracking and recording various metrics of users navigating an architectural computer model, which the present invention incorporates further to facilitate analytical review of user's interactions within an architectural computer model.

Due to the fact that architectural computer models are generated within a virtual space, selection must normally be made as to the background imagery that will be provided with model, e.g., the environment in which the model is depicted, such as views from interior windows. The present invention also provides a new and inventive solution for accurately recreating proposed background images relative to the building site upon which the architectural model is proposed to be built.

Finally, the software necessary to generate high-quality architectural visualizations and render them on-the-fly, including the interactive abilities disclosed herein require substantial computing and processing power, which is not practical or cost efficient to provide to each user, for example, when dealing with prospective purchasers of a planned architectural project within a real estate sales office. Accordingly, the present invention also includes systems and methods for transmitting or streaming an architectural visualization to a client device, as well as receiving input from the client device, in which the client device does not require substantial computing and processing power and the architectural visualization is rendered and transmitted from an application server.

SUMMARY OF THE INVENTION

The present invention is directed to methods, systems, and associated features of providing interaction with elements and objects in a virtual architectural visualization. According to one aspect of the present invention, an architectural visualization is provided for a user to navigate and view utilizing either a display screen and appropriate control elements such as mouse and keyboard or joystick inputs, or via a head-mounted display input device including motion tracking capabilities along with spatially tracked hand input devices which together may comprise virtual, alternate, or mixed reality simulation controls.

A heads-up display (HUD) is provided to a user for interactive and informational purposes to facilitate navigation and viewing of an architectural visualization. Accordingly, the present invention may include an interactive map comprising floor plans and/or a two-dimensional representation of the architectural visualization. The interactive map may include a user icon which tracks the user's movements within the architectural visualization, provides an indication as to the user's directional field of view, and predetermined waypoints or preset camera position markers which are operative to dispose the user's point of view in a preset location and orientation within the visualization, such as those determined by a programmer of the visualization. The interactive map may be further operative to automatically update to reflect when a user has entered a new area such as another floor of the visualization. As such, a floor plan of the associated floor will be represented to the user. Field of view adjustment may also be provided in the HUD which is operative to allow a user to adjust an angle or range of the user's field of view. A preferred embodiment includes an associated camera focal length and measurement in degrees. The HUD also provides toggle controls for viewpoint constraints. By way of example a user's viewpoint may be constrained to that of a first person view within the visualization, but an unconstrained camera view may also be provided such as that which simulates a flying perspective whereby a user may adjust the height of the camera beyond that which could be provided in a first-person perspective.

The HUD may also provide various modes of interaction such as a still image mode in which a camera interface is provided to the user for taking and preserving still images of the visualization which may be stored on a computer associated with or rendering the visualization. An additional mode may comprise a preset camera position mode in which the user may cycle through a plurality of preset camera positions within the visualization.

Another mode of interaction comprises an edit mode in which the user may interact with the visualization by changing any of a plurality of architectural elements or objects in the visualization as well as colors, textures, materials, lighting, background images, and virtually any definable object within the visualization. By way of example various editable objects may be inserted into the visualization via a programming interface and be associated with a plurality of alternative object meshes or object materials, selection of which are operative to change the depicted objects or object materials. Such a method of interacting with such editable objects, especially in embodiments where a head mounted display input device is utilized, may comprise monitoring the user's head motions and field of view via a forward projected vector ray cast from the user's position and locked to the point of view of the user for collision with a collision mesh of an editable object. Generally, it is desirable for the vector ray to be cast normal to the user's field of view. Upon collision, the user may be presented with a plurality of alternative object meshes or alternative object materials from which to select. Alternatively, in embodiments where a spatially tracked hand input device is provided, a hand input device collision mesh may be associated with the hand input device and monitored for collision with the collision mesh of an editable object. As such, editable objects may be interacted with via a simulated “touching” or “grabbing” of the editable object via manipulation of the spatially tracked hand input device.

By way of non-limiting example an editable object may comprise a chair. A plurality of associated alternative object materials may be provided in connection with the chair such as alternative colors, materials, or textures. Additionally, a plurality of associated alternative object meshes may be provided such as alternative furniture, decorations, fixtures, appliances, and the like which may be inserted into the visualization in place of the chair.

In at least one embodiment, when a user desires to interact with an editable object within an edit mode, a graphical panel or swatch panel is presented to the user including thumbnail images of the alternative object meshes or alternative object materials available, from which the user may easily select. Alternative selections are updated in real-time within the visualization and stored to reflect the user's selection.

In a preferred embodiment, the features of the present invention are implemented within a real-time three-dimensional rendering engine such as, but not limited to, a video game engine. In a most preferred embodiment, such a rendering engine may comprise the UNREAL ENGINE 4 developed by EPIC GAMES, INC or UNITY developed by UNITY TECHNOLOGIES. As such, the architectural visualization may be programmed and/or rendered as a “level” of a video game, as intended by the rendering engine, and the various features of the present invention may be implemented via software plugins to be associated with the rendering engine. As such a user of the present invention may experience the architectural visualization as a character within the level. Accordingly, appropriate character controllers and camera controllers may be associated with a custom game mode which is implemented by the engine. The various editable object components, including an automatic thumbnail renderer which operates in association with the alternative object meshes, preset camera position mode, and interactive map elements may be associated with and implemented by the rendering engine. The foregoing is then implemented as an executive by the real time 3D game engine and is experienced by the user as a graphical user interface or HUD.

Accordingly it will be appreciated that a variety of input devices and controllers may be utilized such as a standard display screen and keyboards, mice, game controllers, and/or joysticks. Head-mounted display input devices as well as spatially tracked hand input devices may also be utilized. By way of non-limiting example reference may be had to various commercial embodiments of head-mounted display input devices and spatially tracked hand input devices which may be utilized in association with the present invention such as OCULUS RIFT, HTC VIVE, GOOGLE CARDBOARD, SAMSUNG GEAR VR, PROJECT TANGO, MICROSOFT HOLOLENS, and the like.

Additional features of the present invention include a programming interface which, in a preferred embodiment, is operative within or implemented by the rendering engine. One aspect of the programming interface provides level design with reference to floor maps as textures thereof, from which the architectural visualization may be generated in accordance with the operative tools provided by the rendering engine. Editable objects may be implemented with reference to an object mesh with dictates the visual appearance of the object along with an object material which dictates the color or texture of the object. Alternative object meshes and materials may then be associated with the editable object via a panel interface wherein pre-rendered meshes and materials are loaded to be associated with the editable object. As such when a user interacts with the editable object within an edit mode of the present invention the user will be presented with the aforementioned alternatives that have been associated with the editable object.

Yet another aspect of the present invention includes a thumbnail renderer from which thumbnail pictures of the alternative object meshes and materials may be automatically generated. Such a renderer obviates the need to generate static thumbnail images of each alternative, rather the thumbnail renderer is operative to generate a thumbnail image in real time by referencing the corresponding alternative object mesh or by applying the corresponding alternative object material to a predetermined mesh. These thumbnails are presented to a user of the edit mode in the context of a swatch panel from which the various alternatives may be selected.

A further aspect of the programming interface includes provision of points of interest within the visualization otherwise referred to as preset camera positions. A camera position marker may be placed within the visualization marking the location at which the preset camera position is to be set. The marker may have associated therewith a viewpoint indicator, such as an arrow, which is rotatable or otherwise orientable as the user desires, which will be indicative of the orientation of the preset camera position. As such a user may then provide various camera angles and views that the user desires to be viewed within the visualization.

An additional feature of the present invention comprises methods and implementations of accurate background images for such architectural visualizations. According to one embodiment of the method an aerial vehicle may be utilized and operated in an area of a building site upon which the architectural visualization is intended to represent. The aerial vehicle is equipped with appropriate camera equipment and navigated to a plurality of image capture locations within the building site. Images taken by the camera are then imported into the architectural visualization as accurate depictions of views, for example, from within the interior of a visualization. According to a preferred embodiment of the method, the captured images are manipulated into 360 degree panoramic images and/or image spheres. This may include mapping a plurality of discrete images onto a sphere with normal vectors reversed (facing inward), such that the images face inward. The image(s) are imported into the visualization and oriented with respect to a cardinal direction relative to the visualization. As such a user may be able to select a background image which is representative of a proposed location of the architectural visualization within the building site, by way of example, from the first floor of a northwest facing corner, or from the 15th floor of a southwest facing corner, etc.

The present invention also incorporates methods of capturing analytical data and representing the same in a visual format. As such, a user's movements and field of view is monitored and recorded as the user navigates the visualization at predetermined intervals. The user's movements may be recorded with reference to coordinates or other appropriate position data within the visualization. The field of view of a user may be monitored and recorded with reference to a forward projected vector ray cast from the user's position and associated with an orientation of the user's field of view. This may be accomplished, by way of example, by monitoring an orientation of a head-mounted display unit via accelerometer, gyroscope, or other orientation data provided by the head-mounted display unit. The forward projected vector ray collides with various collision meshes within the visualization and a time period associated with such collision is recorded. As such the length of time that a user views or gazes upon a feature within the visualization is recorded to a computer memory.

An analytic viewer may then be provided in conjunction with the present invention, which in a preferred embodiment is implemented via the rendering engine in a similar fashion to the programming interface. A user is provided with a list of recorded viewings comprising the recorded metrics described above from which the user may select one or more viewings to review. In certain embodiments, data associated with a plurality of viewings may be averaged for review. In such an embodiment, the plurality of viewings may be sorted by one or more desired features such as date or date range of viewing, geographic location of the user, the device type utilized (such as computer, mobile device, or head mounted display unit, along with make and model associated with same), or operating system utilized (such as MICROSOFT WINDOWS, APPLE OS X or iOS, ANDROID, etc. along with version of same). The user may also be presented with data threshold adjustments by which the user may adjust the depiction and presentation of the recorded metrics to fit the user's desired purposes. For example the user may only desire to see data associated with user position encompassing a certain time period, or user camera orientation associated with a certain time period, and may accordingly set a lower threshold limit for such time period, in order to ensure that data falling below the threshold limit does not interfere with representation of the data, thereby clarifying the data for review. Within the analytic viewer, the recorded metrics are overlaid upon the visualization in the form of user position markers and point of view markers or indicators so that a path of a user through the visualization may be viewed with reference to the user position markers.

The recorded metrics may also be represented in a heat map style presentation. For example, user position markers may have a certain intensity associated with them such as lighter colors representing a relatively short time period spent by a user in a certain location and darker colors representing a longer time spent by a user in a certain location. Similarly, user point of view markers may have a certain intensity associated with them such as lighter colors representing a relatively short time of viewing and darker colors representing a relatively long time viewing. Overlaying the analytic data upon the visualization itself presents a user of the analytic viewer with a clear and easily understandable presentation of the recorded metrics for further analysis and use, because it may be easily noted, for example, which features the user focused on within the visualization, by spending longer periods of time viewing such features and/or within the area of such features.

An additional feature of the present invention comprises an association of a secondary display in controlling relation to a primary display depicting the visualization. In a preferred embodiment, the secondary display comprises a touch screen or a tablet computer. It may be seen that provision of a secondary display may find particular use in connection with presentation of architectural visualizations, for example, in the context of sales of a building construction. In certain embodiments the secondary display may be utilized by a presenter or sales agent while the main display is utilized to present the visualization and other information to a potential purchaser.

As such the secondary display may be pre-configured with appropriate software, such as a mobile application downloadable onto the secondary display, to control and interact with the visualization displayed on the main display. For example a “companion app” may be installed on the secondary display which allows communication and control of a computer running a local instance of the rendering engine and from which the visualization is presented on the main display. The secondary display may then be configured to allow searching and sorting of units within a building construction based on various features, location, price, etc., while the main display is utilized to depict building construction, the location of units within the building construction, and various other features and details relevant thereto.

The secondary display may also include a control surface operative to manipulate the visualization on the main display. The secondary display may also include controls to manipulate ambient lighting, display various amenities associated with the building construction, street names, and other information. The secondary display is also operative to initiate the visualization of a particular unit once the unit is selected. As such, the secondary display may further be provided with navigation controls such as simulated thumb stick controls for navigation within the architectural visualization. The presenter display may also provide controls to enable a head-mounted display unit for use by a prospective purchaser. Other desirable features associated with the secondary display may include the ability to enter and/or record information regarding the prospective purchaser, generate customized brochures for the purchaser, display photographs or videos relative to the building construction, and change background images of the visualization as described in accordance with the method above.

Certain embodiments of the present invention may be implementable on an application server, for example in a software-as-a-service (SaaS) environment, or other environments. Accordingly, the system of the present invention generally comprises at least one client device communicably connected to an application server over a network. One or more third party server(s) may further be communicably connected to the application server and the at least one client device over the same network.

The client device may comprise a mobile device, such as a smart phone or a tablet, a computer, a thin client, a wearable electronic device such as a head-mounted display unit, any combination of the foregoing examples disposed in communication with each other, or any other device or combination of circuits structured and configured to communicate with another device, computer, or server over the network and comprising at least a display screen and user input facilities, such as touchscreen input, buttons, joystick, directional pad, spatially tracked input devices, and the like. The client device may further include application(s) and user interface(s) (front-end interface) that allow a user to interact with the application server and stored applications and programs thereon (back-end processing). The user interface may be proprietary and may comprise a custom developed software application(s). Alternatively, or in addition to, the user interface may comprise a web browser application, mobile browser application, or other application or executable code that allows for communication with the application server.

The term “application server” refers to at least one computer having appropriate hardware and applications installed thereon for the provision of server services including processing and generating the graphical components comprising the architectural visualization, such that a user may access, execute, and/or view the architectural visualization remotely from a client device that does not have appropriate hardware and applications installed thereon to process and generate the graphical components of the architectural visualization. More specifically, the application server may comprise general-purpose a computer(s), specialized computer(s), or other hardware components structured and configured to receive, process, transmit, and store information to and from other devices such as client devices. The application server may further be configured with a real-time three-dimensional rendering engine such as, but not limited to, a video game engine, for implementing the architectural visualization as described herein.

For example, the application server may comprise a general-purpose computer comprising a central processing unit (CPU), which may be a single core or multi core processor, memory (random-access memory, read-only memory, and/or flash memory) or primary memory for high-speed storage of executing programs, electronic storage unit (e.g., hard disk) or secondary memory for storing data, communications interface (e.g., network adapter) for communicating with other devices or computers over a network, and/or peripheral device(s) in communication with the CPU that enable input/output of the application server.

In one embodiment, a user may utilize a client device or secondary display to communicate with the application server, thereby causing the application server to execute and generate an architectural visualization. In response to the request, the application server transmits or streams a video signal associated with the architectural visualization to at least the client device. As described above, the architectural visualization may comprise a number of elements, including but not limited to architectural features, editable objects, and backgrounds. The video signal may comprise the visible elements of the architectural visualization, thereby presenting to the user the ability to see the architectural visualization while alleviating the client device from the burden of processing and generating the architectural elements, which instead occurs on the application server. As such, in preferred embodiments, the underlying data associated with rendering or generating the architectural visualization is not transmitted to the client device, but merely a video signal. In yet further embodiments, the application server may be configured to create an emulation or virtual machine instance in response to a request by a client device prior to generating or processing the architectural visualization. In such an embodiment, the architectural visualization is generated within the virtual machine instance and the video signal associated therewith may be transmitted or streamed to the client device via a remote access software program such as VIRTUAL NETWORK COMPUTING provided by REALVNC or REMOTE DESKTOP SERVICES provided by MICROSOFT.

As discussed above, the client device may include a display for viewing of the video signal by the user, as well as input facilities to facilitate the user's interaction with the architectural visualization. As such, the client device and application server are correspondingly configured to receive and transmit not only a video signal, but also input data associated with the manipulations by the user of the input facilities. When input data is transmitted by the client device to the application server, the application server may then process the input data and update the architectural visualization in accordance with the input data received. Additionally, the video signal is then updated to reflect the updated architectural visualization and is transmitted back to the user for visual confirmation of the input. Therefore, the client device is further alleviated from the processing burden of updating the architectural visualization in response to input data by a user. By way of non-limiting example, input data may comprise data associated with changes to the position or angle of the user's point of view within the visualization; interaction with the HUD or components thereof, such as the field of view adjustment, pre-set camera position markers, edit mode and constitution components thereof, still image mode, and the viewpoint constraint toggle; changes to the position or angle of the forward projected vector ray or hand input device collision mesh, as well as collision data of the ray or collision mesh with editable objects; and other elements, all as described in this specification, as well as the specifications of other related applications to which the present application claims priority or domestic benefit.

Accordingly, it will be appreciated that certain embodiments of the methodology of the present invention may be implemented utilizing computer architecture which facilitates the communication of client devices and application servers through hypermedia such that the client device need not be pre-configured to interact with the application server through any specific or fixed interface. By way of example, the methodology of the present invention may adhere to the principals of Representational State Transfer web services. Additionally, a web socket connection may be utilized to facilitate communication of the client device or secondary display with the application server at least so far as is required to initiate the architectural visualization or the virtual machine instance, but may also be utilized to facilitate transmission of input data as well as the video signal.

The application server may implement the methodology of the present invention using any number of solution stacks (a set of software subsystems or components) known to an ordinary computer or web programmer skilled in the art. These solution stacks may include, without limitation, ZEND Server, APACHE Server, NODE.JS, ASP, PHP, Ruby, XAMPP, LAMP, WAMP, MAMP, WISA, LEAP, GLASS, LYME, LYCE, OpenStack, Ganeti, MEAN, MEEN, XRX, JAVASCRIPT and other past, present, or future equivalent solution stacks, or combinations thereof, known to those skilled in the art that allow a programmer to develop the methods and computer programs described within this application. The software stack might be implemented without third-party cloud platforms, for example using load balancing and virtualization software provided by Citrix, Microsoft, VMware, Map-Reduce, Google Filesystem, Xen, memory caching software such as Memcached and Membase, structured storage software such as MySQL, MariaDB, XtraDB, etc. and/or other appropriate platforms. Of course, these solution stacks may also be deployed in cloud platforms by using known development tools and server hosting services such as GitHub and Rackspace, as well as their equivalents.

The network may comprise at least two computers in communication with each other, such as the application server and client device, which may form a data network via LAN, WAN, Serial, Z-WAVE, ZIGBEE, RS-, MODBUS, BACNET, the Internet, or combinations thereof. The connections may be facilitated over various wired and/or wireless mediums or any combination thereof including interconnections by routers and/or gateways. The network may comprise additional hardware components and/or devices appropriate for facilitating the transmission and communication between the various systems and devices of the present invention, such as those directed to integrated authentication, quality control, or to improve content delivery such as via a content delivery network (CDN).

Various aspects of the present invention may be thought of as “products” or “articles of manufacture” typically in the form of machine (or processor) executable code, interpretable code, and/or associated data that is carried on or embodied in a machine readable medium. Machine-executable code can be stored on an electronic storage unit, such memory (e.g., read-only memory, random-access memory, flash memory) or a hard disk, as described above.

All or portions of the architectural visualization, video signal, or input data may at times be communicated through the Internet or other communication networks. Such communications, for example, may enable loading from one computer or processor onto another, for example, from a management server or host computer onto the computer platform of an application server, or from an application server onto a client device. Thus, another type of media that may bear the architectural visualization, video signal, or input data elements includes optical, electrical and electromagnetic waves, such as used across physical interfaces between local devices, through wired and optical landline networks and over various air-links. The physical elements that carry such waves, such as wired or wireless links, optical links or the like, also may be considered as media bearing the software. As used herein, tangible “storage” media, terms such as computer or machine “readable medium”, refer to any medium that participates in providing instructions to a processor for execution. Further, the term “non-transitory” computer readable media includes both volatile and non-volatile media, including RAM. In other words, non-transitory computer media excludes only transitory propagating signals per se, but includes at least register memory, processor cache, RAM, and equivalents thereof.

Therefore, a machine-readable medium, such as computer-executable code and/or related data structures, may take many forms, including but not limited to, a tangible storage medium, a carrier wave medium or physical transmission medium. Non-volatile storage media include, for example, optical, magnetic, or solid state disks, such as any of the storage devices in any computer(s) or the like, such as may be used to house the databases. Volatile storage media include dynamic memory, such as main memory of such a computer platform. Tangible transmission media may include coaxial cables, copper wire and fiber optics, communication buses. Carrier-wave transmission media may take the form of electric or electromagnetic signals, or acoustic or light waves such as those generated during radio frequency (RF) and infrared (IR) data communications. Common forms of computer-readable media therefore include for example: a floppy disk, a flexible disk, hard disk, magnetic tape, any other magnetic medium, a CD-ROM, DVD or DVD-ROM, any other optical medium, punch cards paper tape, any other physical storage medium with patterns of holes, a RAM, a ROM, a PROM and EPROM, a FLASH-EPROM, any other memory chip or cartridge, a carrier wave transporting data or instructions, cables or links transporting such a carrier wave, or any other medium from which a computer may read programming code and/or data. Many of these forms of computer readable media may be involved in carrying one or more sequences of one or more instructions to a processor for execution.

These and other objects, features and advantages of the present invention will become clearer when the drawings as well as the detailed description are taken into consideration.

BRIEF DESCRIPTION OF THE DRAWINGS

For a fuller understanding of the nature of the present invention, reference should be had to the following detailed description taken in connection with the accompanying drawings in which:

FIG. 1 is a depiction of a heads-up display overlaid an upon architectural visualization in accordance with one embodiment of the present invention.

FIG. 2 is a depiction of a heads-up display of an edit mode overlaid upon an architectural visualization and interaction with an editable object thereof in accordance with one embodiment of the present invention.

FIG. 2A is a depiction of a forward projected vector ray colliding with a collision mesh of an editable object in accordance with one embodiment of the present invention.

FIG. 2B is a depiction of a hand input device collision mesh colliding with a collision mesh of an editable object in accordance with one embodiment of the present invention.

FIG. 3 is a flowchart depicting a method in accordance with one embodiment of the present invention.

FIG. 4 is a depiction of a programming interface and associated features in accordance with one embodiment of the present invention.

FIG. 5 is a depiction of a programming interface and associated features in accordance with one embodiment of the present invention.

FIG. 6 is a depiction of a programming interface and associated features in accordance with one embodiment of the present invention.

FIG. 7 is a flowchart depicting another method in accordance with one embodiment of the present invention.

FIG. 8 is a depiction of an analytic viewer and associated features in accordance with one embodiment of the present invention.

FIG. 9 is a depiction of an analytic viewer and associated features in accordance with one embodiment of the present invention.

FIG. 10 is a depiction of an analytic viewer and associated features in accordance with one embodiment of the present invention.

FIG. 11 is a depiction of various elements associated with an alternative embodiment of a method in accordance with the present invention.

FIG. 12 is a depiction of various elements associated with an alternative embodiment of a method in accordance with the present invention.

FIG. 13 is a depiction of various elements associated with an alternative embodiment of a method in accordance with the present invention.

FIG. 14 is a depiction of various elements associated with an alternative embodiment of a method in accordance with the present invention.

FIG. 15 is a depiction of various elements associated with an alternative embodiment of a method in accordance with the present invention.

FIG. 16 is a schematic depiction of a method of generating background images in accordance with one embodiment of the present invention.

FIG. 17 is a flowchart depicting another method in accordance with one embodiment of the present invention.

FIG. 18 is a schematic depiction of additional features and elements associated with one embodiment of the present invention.

FIG. 19 is a schematic depiction of additional features and elements associated with one embodiment of the present invention.

FIG. 20 is a schematic depiction of additional features and elements associated with one embodiment of the present invention.

FIG. 20A is a schematic depiction of a client device according to one embodiment of the present invention.

FIG. 21 is a flowchart depicting another method in accordance with one embodiment of the present invention.

Like reference numerals refer to like parts throughout the several views of the drawings.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

Referring to FIGS. 1 and 2, depicted therein is an architectural visualization 10 in accordance with one embodiment of the present invention. Within the visualization 10 are various architectural features 11 such as walls, windows, floors, furniture, fixtures, appliances, and the like. At least some of the architectural features are editable objects 12, which will be discussed in detail below. The architectural visualization 10 may also provide a background 13, such as an image which is indicative of a view from the interior of the visualization 10.

The invention provides a heads up display (HUD) 20 including a variety of features overlaid upon the visualization 10, such as an interactive map 21, a field of view adjustment (FOV adjustment) 22, and several toggles affecting the various modes of the invention including a pre-set camera position mode 23, an edit mode 24, a still image mode 25, and a viewpoint constraint toggle 26.

The interactive map 21 includes a user icon 210 which tracks the user in real time and denotes the position of the user within the visualization 10, a user field of view (user FOV) 211, which indicates the direction that the user is facing within the visualization 10, and a plurality of interactive pre-set camera position markers 213. When a user selects a marker 213, it is operative to shift the view to a predetermined position within the visualization 10 to a predetermined location and orientation. Such a feature finds particular use when composing particular viewpoints that are desired for a user to view within the visualization 10.

The FOV adjustment 22 provides for manipulation of the user's field of view within the visualization 10 in accordance with familiar metrics of camera focal lengths, (e.g. 35 mm) as well as an indication in degrees of the field of view. Accordingly, a user may select a range dependent upon, e.g., if the user would like to view more of the visualization 10 at once, the user may chose a wide angle, or if the user would like to focus on a portion of the visualization, the user may select a narrow angle.

The pre-set camera position mode 23 allows the user to select a predetermined camera position within the visualization 10 which may correspond to one of the interactive pre-set camera position markers 213 viewable on the interactive map 21. The still image mode 25 allows the user to take still images of the user's FOV and preserve them for later reference.

Now with reference to FIG. 2, the edit mode is disclosed in further detail. Activating the edit mode toggle 24 allows a user to interact with any editable object 12 within the visualization 10. In the depicted embodiment, an edit mode HUD 20′ is provided which includes a crosshair 241, or other indicator, to assist in selection and interaction with editable objects 12. Accordingly, a user may manipulate the field of view in order to place the crosshair 241 over an editable object 12. A selected object 245 may, glow, pulse, or be highlighted, to indicate to a user that the object is selected. Upon selecting an object 12, the user is presented with a prompt to select one of an alternative object mesh or object material. In the depicted embodiment, a swatch panel 242 is presented to the user including at least one, or preferably a plurality, of thumbnails 2421 depicting the various alternative objects meshes or object materials available. A selector icon 2422 is provided to indicate which thumbnail 2421 is selected. Once a selection is made, the selected object 245 is updated with either a new object mesh and/or a new object material, depending upon the selection.

With reference to FIGS. 2A, and 2B, additional functionality relative to the various embodiments of the edit mode of the present invention are depicted. Specifically, each editable item 12 includes an object mesh 41, collision mesh 42, and object material 43. The object mesh 41 generally dictates the visible appearance of the object to a user, e.g., whether the object is in the shape of a chair, cabinets, wall, or any other architectural feature. The object material 43 generally dictates the color and/or texture of the object, e.g., shiny, matte, woodgrain, carpet, etc. The collision mesh 42 is a volume associated with the object, preferably but not necessarily invisible to the user. A forward projected vector ray 44 is cast from the user's position. When a collision is detected between a collision mesh 42 of an editable object 12 and the vector ray 44, the user is presented with certain options relative to the editable object 12, including but not limited to the swatch panel 242 as described above. The vector ray 44 may be visible or invisible to the user. It will be understood that within FIGS. 2A and 2B the vector ray 44 and collision mesh 42 have been depicted as being invisible to facilitate disclosure thereof.

With respect to FIG. 2b , an alternative embodiment is depicted. In such an embodiment, the user of architectural visualization 10 utilizes a spatially tracked hand input device (described further below) to assist in navigating and/or interacting with the visualization 10. Accordingly, a virtual representation of the hand input device 2000′ is presented to the user within the visualization 10. The virtual representation of the hand input device 2000′ includes a hand input device collision mesh 45 which is a volume associated with the virtual representation of the hand input device 2000′. As such, the user may manipulate the hand input device collision mesh 45 into colliding relation with the collision mesh 42 of the object 12 in order to initiate presentation of certain options relative to the object 12, as described above. In this sense, the user may interact with the object 12 by “touching” or “grabbing” the virtual object in the visualization 10 via manipulation of the spatially tracked hand input device.

FIG. 3 is a flowchart depicting a method of providing interaction with elements in a virtual architectural visualization in accordance with one embodiment of the present invention. As such, the method includes providing an architectural visualization including at least one editable object 801. It will be understood that the architectural visualization may be depicted on virtually any manner of display screen and may be rendered by virtually any manner of graphic rendering software. A preferred embodiment will include a visualization 10 rendered and capable of being displayed on a display screen, such as a computer screen, as well as through a head mounted display input device.

The method also includes detecting a collision between the collision mesh and a forward projected vector ray cast from a position of a user of the architectural visualization 802. The forward projected vector ray may be cast from a virtual camera, such as when a display screen is used to interact with the visualization, or with reference to the orientation of a head mounted display input device worn by a user. In alternative embodiments, the forward projected vector ray may be cast with reference to the orientation of a spatially tracked hand input device. In yet further embodiments the invention may utilize a hand input device collision mesh as described above.

The method also includes prompting the user with at least one of an alternative object mesh or an alternative object material 803. This step may be carried out as described above regarding the presentation of a swatch panel including thumbnails depicting alternative object meshes or alternative object materials. Next the method involves receiving a user selection of the at least one of an alternative object mesh or an alternative object material as previously described regarding selection by a user of a thumbnail present in a presented swatch panel. Next the method involves updating the architectural visualization with the user selection 805. Accordingly the editable object within the visualization will depict the selected object mesh or object material. These selections may also be stored in a memory of a computer associated with the architectural visualization.

FIGS. 4, 5, and 6 depict a programming interface 100 in accordance with one embodiment of the present invention. Specifically with reference to FIG. 4, depicted therein is an editable object 12 and object data panel 40 for providing alternative options associated with the object 12. As can be seen in FIG. 5 an alternative object mesh 243 has been associated with the editable object 12, additionally an alternative object material has been associated with the editable object 12. As depicted the editable object 12 comprises a chair, while the alternative object mesh 243 comprises a set of cabinets, and the alternative object material 244 is a shiny, dark material. When a user of the visualization 10 interacts with the editable object 12 the user will be presented with an alternative object mesh 243 in the form of the cabinets or an alternative object material 244 which will be operative to present the chair in a shiny, dark texture.

Turning to FIG. 6, the programming interface 100 may also include interactive preset camera position markers 213 positionable by a user of the programming interface 100. Each marker 213 includes a viewpoint indicator 2131. The indicator 2131 is selectively positionable and/or rotatable by a user of the programming interface 100 and is indicative of the preset camera orientation associated with the marker 213. Accordingly a user of the architectural visualization 10 including such markers 213 will be able to interact with the markers 213 which are operative to position the viewpoint of the user in accordance with the preset camera position marker 213 in the orientation determined by the position of the indicator 2131.

FIGS. 7 through 10 are associated with a method of producing and representing analytic data within a virtual architectural visualization. Specifically, FIG. 7 is a flow chart in accordance with such a method which includes providing an architectural visualization to a user 806, essentially described above. The method further includes recording metrics comprising user position data and collision data relative to a forward projected vector ray cast from the user's position at predetermined intervals 807. User position data may comprise measurements associated with the position of the user within the architectural visualization. Collision data may comprise measurements associated with a field of view of the user such that objects within the visualization that the user views may be tracked. One embodiment includes a forward projected vector ray cast from the user's position and specifically with reference to the user's field of view, tracking, and recording collision data associated with collisions of the vector ray and collision meshes of objects within the architectural visualization. It will be understood that a range of predetermined intervals at which such metrics are recorded may be applicable depending upon the metrics to be collected and/or features of the architectural visualization. In a preferred embodiment of the present invention however the predetermined interval is on the order of ¼ of a second which the inventors have determined to be an optimal interval for collection of analytic data based upon a user's movements and viewings within and architectural environments such as the interior of a building.

The method additionally includes importing the reported metrics to an analytics viewer wherein the position data and collision data is overlaid the architectural visualization 808. As such the raw data comprising the recorded metrics, which may be coordinates relative to user position and time measurements relative to length of collisions between the forward projected vector ray and collision meshes, is synthesized into an easily viewable and understandable format. For example the user position and data may be represented by one or more position markers distributed throughout the visualization representing a path that the user navigated within the visualization during a certain viewing. Additionally the collision data may be represented as point of view markers positioned at the location of collisions between the forward projected vector ray and corresponding collision meshes. Additionally the position markers may have a position intensity associated with them, such as variable opacities and/or colors which indicate a length of time that a user was spent in a certain location within the visualization. For example if a user moved relatively quickly through a position, it may be represented by a light color or substantially transparent marker, on the other hand if a user spent a longer period of time in a single position, the associated position marker may be displayed in a darker color or substantially opaque appearance.

By way of continuing example the point of view markers may include point of view intensities associated therewith. As with the position intensities, the point of view intensities may be of variable opacities and/or colors which indicate a length of time that a user viewed an object. If a user viewed an object for a relatively short period of time the point of view intensity may be substantially transparent and/or light color. If the user viewed an object for a relatively long period of time the point of view intensity may be depicted in a substantially opaque and/or dark color.

With reference to FIG. 8, an analytics viewer 50 in accordance with one embodiment of the present invention is depicted therein. The analytics viewer 50 includes the architectural visualization 10 and presents the user with the ability to select one or more recorded metrics 51 comprising recorded metrics as described above to be overlaid on the architectural visualization 10. The user may select a single recorded viewing, or a plurality of recorded viewings to be overlaid. An average of a plurality of recorded viewings may also be overlaid. The analytic viewer 50 also presents one or more data threshold adjustments 52 in order to modify the appearance of position markers, point of view markers, position intensities, and point of view intensities to a user's preference.

Turning now to FIG. 9 the recorded metrics 51 have been overlaid the architectural visualization 10 within the analytics viewer 50 comprising position markers 53, point of view markers 54, and associated position intensities 55 and point of view intensities 56. As such a user of the analytics viewer 50 may navigate the architectural visualization 10 and view the visual depictions of the recorded metrics 51 in order to understand and/or synthesize the collected data. As can be seen the position intensities 55 are depicted with reference to a color scale which may be adjusted via the data threshold adjustment, blue representing a lower time period of position data, green representing a longer time period of position data. The point of view intensities 56 are also depicted with reference to a color scale, green representing a lower time period of point of view data, red representing a longer time period of point of view data.

Turning now to FIG. 10, an output log of recorded metrics 57 may be presented to a user of the analytic viewer 50. Such an output log 57 may comprise object identifiers and time periods associated with a user's viewing of the object. Additionally the architectural visualization may present with a reduced ambient light 58, lower than that which would be applicable to a viewing of the architectural visualization 10 itself, such that the position markers 53 and point of view of markers 54 may be more easily seen.

FIG. 11 depicts various elements associated with an alternative embodiment of a method in accordance with the present invention. As depicted, a user 3000 is provided with a head-mounted display input device 1010 along with spatially tracked hand input devices 2000 in order to interact with the architectural visualization 10. For purposes of facilitating disclosure the display screen 1000 depicts the architectural visualization 10 as seen by the user 3000 via the head-mounted display input device 1010. It may also be useful in allowing others to view the architectural visualization 10 as the user 3000 navigates same. The spatially tracked hand input devices 2000 are associated with virtual depictions of the same referenced as 2000′ throughout the drawings. As can be seen, one of the hand input devices 2000 is associated with interaction pallets 60 and the other of the hand input devices 2000 is utilized to make selections and otherwise interact with the architectural visualization 10. The interaction palettes 60 of the depicted embodiment incorporates an object palette 61, a map palette 62, and a camera palette 63. With specific reference to FIG. 12, the object palette may be selected in order to interact with objects indoor architectural elements 11 within the architectural visualization 10. As can be seen the user 3000 is utilizing one of the hand input devices 2000 to make a selection of architectural elements 11. Turning now to FIG. 13, it can be seen that the user 3000 is further utilizing one of the hand input devices 2000 to place a selected architectural element 11 within the architectural visualization 10. According to one embodiment of the present invention this may be accomplished via the forward projected vector ray cast from the corresponding hand input device 2000 which interacts with a collision mesh of the architectural elements 11 in order to confirm and/or represent to the user which of the specific architectural elements 11 is desired to be interacted with. Turning now to FIG. 14, the user is depicted interacting with a map pallet 62 of the present invention which is associated with one of the hand input devices 2000 while, the other hand input device is utilized to interact with the map palette 62. For example the user is utilizing the hand input device 2000 to select a floorplan marker 621 in order to facilitate navigation of the architectural visualization 10. Now with reference to FIG. 15, the user has selected the camera palette 63 which enables a user to take still images of the architectural visualization 10. As can be seen the camera palette 63 is associated with one of the hand input devices 2000 which allows a user to manipulate the camera palette 63 and frame the still image that is desired to be taken. As described above such still images may be stored on a memory of a computer associated with the architectural visualization 10.

FIGS. 16 and 17 are associated with methods and elements for capturing imagery for use as a background of an architectural visualization. Specifically with reference to FIG. 16, a schematic diagram of such a method according to one embodiment of the present invention is depicted therein. As can be seen, an aerial vehicle 31 is equipped with at least one camera 32 but also possibly a plurality of cameras disposed in assembly. The aerial vehicle is operated relative to the building site 33, such as a potential location upon which an architectural visualization is intended to represent. The aerial vehicle 31 is navigated to a first image capture location 34 relative to the building site 33 wherein a first image is captured via the camera 32. The aerial vehicle 31 is then navigated to a second image capture location relative to the building site 33 and another image is captured. The process is repeated until the nth or last image capture location 36 is reached wherein an nth or last image is captured.

Now with reference to FIG. 17 a flowchart in accordance with the method as depicted. Steps 809, 810, and 811 include the procedures of operating an aerial vehicle equipped with a camera relative to a building site, navigating the aerial vehicle to a plurality of image capture locations, and capturing an image of each of said plurality of image capture locations as set forth and described with reference to FIG. 16. The method also includes selectively positioning at least one of the images as a background image to an architectural visualization 812. This step may include importing such an image into software associated with the rendering of an architectural visualization. By way of example such a background is disclosed as reference numeral 13 in FIGS. 1 and 2. The method may also include aligning the background image and the architectural visualization with respect to a cardinal direction 813. Accordingly it may now be recognized that the foregoing procedure may be utilized to represent accurate views from an architectural visualization relative to a building site on which the architectural visualization may eventually be constructed. It will be appreciated that and accurate representation of views from such an architectural visualization may facilitate the accurate reproduction thereof for viewing and interacting by a user.

In a preferred embodiment of the method the aerial vehicle 31 and/or the camera 32 may be cooperatively disposed or operated so as to produce a 360 degree panoramic image at each of the capture locations. Furthermore each of the capture locations may correspond to a story or floor of a building to be constructed on the building site 33. As such user of an architectural visualization incorporating the method of generating background images of the president mention may be presented with a plurality of background images each associated with a particular floor of the building in which the architectural visualization represents. Additionally the 360 degree panoramic image provides for rotation of the view from various directions. By way of example, an architectural visualization may be pre-rendered with a background image depicting a view towards the southwest of the third floor of a building. A user may desire to experience the architectural visualization as if it were located in another area of the building such as facing the northeast. As such the background image may be rotated relative to the visualization to provide such a view. Additionally the user may desire to view the background image as if the architectural visualization represented another floor of the building. Accordingly the corresponding image from the corresponding capture location may be substituted.

Yet another aspect of the present invention comprises provision and use of a secondary display as generally depicted in FIGS. 18 and 19. Specifically such a secondary display 4000 may comprise a tablet computer upon which is installed requisite software to enable interaction with an architectural visualization 10 on a display screen 1000. For example the secondary display 4000 may be configured to communicate with a computer rendering an architectural visualization 10 in real time on the display screen 1000. The secondary display 4000 may be configured and operative to receive touch input and provide various functionality which may facilitate the selection, depiction, and viewing of various architectural visualizations 10 on a display screen 1000, by way of example, for use as a presentation mode by a sales agent in the context of presenting a proposed construction to a potential purchaser. Turning to FIG. 18, it can be seen that the secondary display 4000 includes various features which facilitate selection of a specific architectural visualization such as a unit sort input 4010, which allows selection of a unit by various features, as a non-limiting example. The secondary display may also be equipped with a control surface 4020 for manipulating the architectural visualization 10 in real time. Further inputs may be operative to adjust lighting and display other relevant information such as unit location within the architectural visualization 10, pricing information, amenities, features, street names, and the like. Turning to FIG. 19, the secondary display 4000 may further be configured to provide navigation controls 4040 for navigating within an architectural visualization 10 such as an interior view of a building construction in accordance with that set forth above. The secondary display may also provide controls 4030 to activate a head-mounted display depicting the architectural visualization 10 such as when a prospective purchaser desires to utilize same to view the architectural visualization and/or interact with it.

Turning to FIGS. 20 and 20A, a schematic depiction of additional embodiments of the present invention which facilitate the use by, e.g., a potential purchaser or sales agent, and particularly facilitate interaction with an architectural visualization 10 (as depicted in previous figures) without the need for the user 3000 (as depicted in previous figures) to possess computing equipment with high-processing power, as is normally required for graphically-intensive visualizations. Accordingly, at least one client device 902, but also in certain embodiments a plurality of client devices 902′, 902″, or a secondary display 4000 may be utilized to communicate with an application server 901, via a network 908 thereby causing the application server 902 to execute and generate an architectural visualization 10. In response to the request, the application server 901 is operative to transmit or stream a video signal 906 associated with the architectural visualization 10 to at least the client device 101. As described above, (and with reference to the appropriate figures) the architectural visualization 10 may comprise a number of elements, including but not limited to architectural features 11, editable objects 12, and backgrounds 13. The video signal 906 may comprise the visible elements of the architectural visualization 10, thereby presenting to the user 3000 the ability to see the architectural visualization 3000 while alleviating the client device 902 from the burden of processing and generating the architectural elements 10, which instead occurs on the application server 901. In yet further embodiments, the application server 901 may be configured to create an emulation or virtual machine instance 905 in response to a request by a client device 101 prior to generating or processing the architectural visualization. In such an embodiment, the architectural visualization 10 is generated within the virtual machine instance 905 and the video signal 906 associated therewith may be transmitted or streamed to the client device 902 via a remote access software program such as VIRTUAL NETWORK COMPUTING provided by REALVNC or REMOTE DESKTOP SERVICES provided by MICROSOFT.

As discussed above, the client device 902 may include a display 903 for viewing of the video signal 906 by the user 3000, as well as input facilities 904 to facilitate the user's 3000 interaction with the architectural visualization 10. As such, the client device 1010 and application server are correspondingly configured to receive and transmit not only a video signal 906, but also input data 907 associated with the manipulations by the user 3000 of the input facilities 904. When input data 907 is transmitted to the application server 901, the application server 901 may then process the input data 907 and update the architectural visualization 10 in accordance with the input data 907 received. Additionally, the video signal 906 is then updated to reflect the updated architectural visualization 10 and is transmitted back to the user 3000 for visual confirmation of the input. Therefore, the client device is further alleviated from the processing burden of updating the architectural visualization 10 in response to input data 907 by a user 3000. By way of non-limiting example, (and with reference to the foregoing figures depicting the recited elements) input data 907 may comprise data associated with changes to the position or angle of the user's 3000 point of view 211 within the visualization 10; interaction with the HUD 20 or components thereof, such as the field of view adjustment 22, pre-set camera position markers 23, edit mode 24 and constitution components thereof, still image mode 25, and the viewpoint constraint toggle 26; changes to the position or angle of the forward projected vector ray 44 or hand input device collision mesh 45, as well as collision data of the ray 44 or collision mesh 45 with editable objects 12; and other elements, all as described in this specification, as well as the specifications of other related applications to which the present application claims priority or domestic benefit.

Accordingly, it will be appreciated that certain embodiments of the methodology of the present invention may be implemented utilizing computer architecture which facilitates the communication of client devices 902 and application servers 901 through hypermedia such that the need not be pre-configured to interact with the application server 901 through any specific or fixed interface. By way of example, the methodology of the present invention may adhere to the principals of Representational State Transfer web services. Additionally, a web socket connection may be utilized to facilitate communication of the with the application server 901 at least so far as is required to initiate the architectural visualization 10 or, the virtual machine instance 905, but may also be utilized to facilitate transmission of input data 907 as well as the video signal 906.

With reference to FIG. 21, depicted therein is a schematic depicting steps to be performed in accordance with at least one embodiment of the present invention. According to the embodiment depicted therein, the method comprises providing an application server configured with at least a rendering engine for an architectural visualization, said application server further configured to communicate with at least one client device via a network 910; said application server configured to generate said architectural visualization with a virtual machine instance 911; generating a predetermined architectural visualization in response to a request from said at least one client device 912; transmitting a video signal associated with said predetermined architectural visualization to said at least one client device via said network 913; and, receiving input data from said at least one client device and updating said architectural visualization 914.

Since many modifications, variations and changes in detail can be made to the described preferred embodiment of the invention, it is intended that all matters in the foregoing description and shown in the accompanying drawings be interpreted as illustrative and not in a limiting sense. Thus, the scope of the invention should be determined by the appended claims and their legal equivalents. 

What is claimed is:
 1. A method of producing and representing analytic data within a virtual architectural visualization comprising: providing an architectural visualization to a user; recording metrics comprising at least user position data within the architectural visualization; importing the recorded metrics to an analytics viewer wherein said user position data is overlaid the architectural visualization via depiction of a plurality of position markers corresponding to said user position data; and an intensity of said position marker corresponds with a length of time the user spent in a position corresponding to said position marker.
 2. The method as recited in claim 1 wherein said recorded metrics are recorded at approximately one quarter second intervals.
 3. The method as recited in claim 1 further comprising the step of recording collision data relative to a forward projected vector ray cast from the user's position, with respect to the user's field of view within the architectural visualization, at predetermined intervals.
 4. The method as recited in claim 3 further comprising the step of importing said recorded collision data to an analytics viewer.
 5. The method as recited in claim 4 further comprising the step of overlaying said collision data on the architectural visualization via a depiction of a plurality of point of view markers corresponding to a location of a collision between said forward projected vector ray and an object within the architectural visualization.
 6. The method as recited in claim 5 wherein an intensity of said point of view marker corresponds with a length of time said forward projected vector ray collided with said object within the architectural visualization.
 7. The method as recited in claim 3 wherein said forward projected vector ray is cast from the user's position with reference to the user's field of view.
 8. The method as recited in claim 1 wherein said user position data is recorded with respect to the user's position within the architectural visualization.
 9. A method of producing and representing analytic data within a virtual architectural visualization comprising: providing an architectural visualization to a user; recording metrics comprising collision data relative to a forward projected vector ray cast from the user's position within the architectural visualization at predetermined intervals; importing the recorded metrics to an analytics viewer wherein the collision data is overlaid the architectural visualization via a depiction of a plurality of point of view markers corresponding to a location of a collision between said forward projected vector ray and an object within the architectural visualization; and an intensity of said point of view marker corresponds with a length of time said forward projected vector ray collided with said object within the architectural visualization.
 10. The method as recited in claim 9 wherein said predetermined interval is about one quarter of a second.
 11. The method as recited in claim 9 further comprising the step of recording user position data within the architectural visualization.
 12. The method as recited in claim 11 further comprising the step of importing said recorded user position data to the analytics viewer.
 13. The method as recited in claim 12 further comprising overlaying said user position data on the architectural visualization via depiction of a plurality of position markers corresponding to said user position data.
 14. The method as recited in claim 13 wherein an intensity of said position marker correspondence with a length of time a user spent in said position.
 15. A system for recording and viewing analytic data within an architectural visualization, the system comprising: at least one computing device operative to display the architectural visualization on at least one display; at least one user input device operative to at least allow a user to control a user position within the architectural visualization; said at least one computing device further operative to record metrics associated with at least user position data associated with the user's position within the architectural visualization; said at least one computing device further operative to import said recorded metrics to an analytics viewer wherein said recorded metrics are overlaid the architectural visualization.
 16. The system as recited in claim 15 wherein said user input device includes a head-mounted display input device operative to control a user's field of view within the architectural visualization.
 17. The system as recited in claim 16 wherein said recorded metrics further comprises collision data relative to a forward projected vector ray cast from the user's position within the architectural visualization at predetermined intervals, with respect to the user's field of view.
 18. The system as recited in claim 15 wherein said analytics viewer includes at least one threshold adjustment operative to adjust an intensity of said recorded metrics when overlaid the architectural visualization. 